home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
081-090
/
amok84
/
envsupport
/
envsupport.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
71 lines
(*---------------------------------------------------------------------------
:Program. EnvSupport
:Author. Thomas Igracki
:Address. Obstallee 45, 1000 Berlin 20, W-Germany
:E-Mail. InterNet -> lokai@cs.tu-berlin.de
:E-Mail. Z-Netz -> T.Igracki@BAMP.ZER
:E-Mail. Fido -> Thomas_Igracki%2:2403_10.40
:Version. 1.0
:Date. 25-Oct-1992
:Copyright. Thomas Igracki (If you like to use it, contact me!)
:Language. Oberon
:Translator. Amiga Oberon 2.14d
:Contents. SetEnv(), GetEnv(), AddEnv(), CutEnv(), ToggleEnv(), TestEnv()
:Usage. IMPORT EnvSupport;
:Remark. OS2.0 Only!
---------------------------------------------------------------------------*)
MODULE EnvSupport;
IMPORT
s: SYSTEM, d: Dos, st: Strings;
VAR
flags: LONGSET; p: LONGINT; buffer: ARRAY 256 OF CHAR;
PROCEDURE Local* (local: BOOLEAN); (* Globale oder locale Envs? *)
BEGIN
IF local THEN flags := LONGSET{d.localOnly}
ELSE flags := LONGSET{d.globalOnly} END;
END Local;
PROCEDURE SetFlags* (newFlags: LONGSET);
BEGIN flags := newFlags
END SetFlags;
PROCEDURE SetEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
BEGIN RETURN d.SetVar (Name,String,-1,flags)
END SetEnv;
PROCEDURE GetEnv* (Name: ARRAY OF CHAR; VAR Buff: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
BEGIN RETURN d.GetVar (Name,Buff,LEN(Buff),flags)#-1
END GetEnv;
PROCEDURE AddEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
BEGIN
IF ~GetEnv (Name,buffer) THEN RETURN FALSE END;
st.Append (buffer,String);
RETURN SetEnv (Name,buffer)
END AddEnv;
PROCEDURE CutEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
BEGIN
IF ~GetEnv (Name,buffer) THEN RETURN FALSE END;
p := st.Occurs (buffer,String); IF p = -1 THEN RETURN FALSE END;
st.Delete (buffer,p,st.Length(String));
RETURN SetEnv (Name,buffer)
END CutEnv;
PROCEDURE TestEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
BEGIN
IF ~GetEnv (Name,buffer) THEN RETURN FALSE END;
RETURN st.Occurs(buffer,String)#-1
END TestEnv;
PROCEDURE ToggleEnv* (Name,String: ARRAY OF CHAR): BOOLEAN; (* $CopyArrays- *)
BEGIN
IF TestEnv(Name,String) THEN RETURN CutEnv(Name,String)
ELSE RETURN AddEnv(Name,String) END;
END ToggleEnv;
BEGIN
flags := LONGSET{d.globalOnly}; (* Default: Globale Envs *)
END EnvSupport.